home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickTime / Programming Stuff / QuickTime 2.1 for Developers / Interfaces / CIncludes / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-07  |  11.7 KB  |  297 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    
  7.  
  8.      DRI:        Jim Batson
  9.  
  10.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Warning:    *** APPLE INTERNAL USE ONLY ***
  14.                  This file may contain unreleased API's
  15.  
  16.      BuildInfo:    Built by:            QuickTime
  17.                  With Interfacer:    1.1d11  
  18.                  From:                MediaHandlers.i
  19.                      Revision:        0
  20.                      Dated:            08/07/95
  21.                      Last change by:    JB
  22.                      Last comment:    This is a fake header used so interfacer is happy.
  23.  
  24.      Bugs:        Report bugs to Radar component “System Interfaces”, “Latest”
  25.                  List the version information (from above) in the Problem Description.
  26.  
  27. */
  28.  
  29. #ifndef __MEDIAHANDLERS__
  30. #define __MEDIAHANDLERS__
  31.  
  32.  
  33. #ifndef __MEMORY__
  34. #include <Memory.h>
  35. #endif
  36. /*    #include <Types.h>                                            */
  37. /*        #include <ConditionalMacros.h>                            */
  38. /*    #include <MixedMode.h>                                        */
  39.  
  40. #ifndef __IMAGECOMPRESSION__
  41. #include <ImageCompression.h>
  42. #endif
  43. /*    #include <Quickdraw.h>                                        */
  44. /*        #include <QuickdrawText.h>                                */
  45. /*    #include <QDOffscreen.h>                                    */
  46. /*        #include <Errors.h>                                        */
  47. /*    #include <Components.h>                                        */
  48. /*    #include <Windows.h>                                        */
  49. /*        #include <Events.h>                                        */
  50. /*            #include <OSUtils.h>                                */
  51. /*        #include <Controls.h>                                    */
  52. /*            #include <Menus.h>                                    */
  53. /*    #include <StandardFile.h>                                    */
  54. /*        #include <Dialogs.h>                                    */
  55. /*            #include <TextEdit.h>                                */
  56. /*        #include <Files.h>                                        */
  57.  
  58. #ifndef __MOVIES__
  59. #include <Movies.h>
  60. #endif
  61. /*    #include <Aliases.h>                                        */
  62. /*        #include <AppleTalk.h>                                    */
  63.  
  64. #ifdef __cplusplus
  65. extern "C" {
  66. #endif
  67.  
  68. #if GENERATINGPOWERPC
  69. #pragma options align=mac68k
  70. #endif
  71.  
  72. #ifdef __CFM68K__
  73. #pragma import on
  74. #endif
  75.  
  76.  
  77. enum {
  78.     handlerHasSpatial            = 1 << 0,
  79.     handlerCanClip                = 1 << 1,
  80.     handlerCanMatte                = 1 << 2,
  81.     handlerCanTransferMode        = 1 << 3,
  82.     handlerNeedsBuffer            = 1 << 4,
  83.     handlerNoIdle                = 1 << 5,
  84.     handlerNoScheduler            = 1 << 6,
  85.     handlerWantsTime            = 1 << 7,
  86.     handlerCGrafPortOnly        = 1 << 8
  87. };
  88.  
  89. /* media task flags */
  90. enum {
  91.     mMustDraw                    = 1 << 3,
  92.     mAtEnd                        = 1 << 4,
  93.     mPreflightDraw                = 1 << 5,
  94.     mSyncDrawing                = 1 << 6
  95. };
  96.  
  97. /* media task result flags */
  98. enum {
  99.     mDidDraw                    = 1 << 0,
  100.     mNeedsToDraw                = 1 << 2,
  101.     mDrawAgain                    = 1 << 3,
  102.     mPartialDraw                = 1 << 4
  103. };
  104.  
  105. enum {
  106.     forceUpdateRedraw            = 1 << 0,
  107.     forceUpdateNewBuffer        = 1 << 1
  108. };
  109.  
  110. struct GetMovieCompleteParams {
  111.     short                            version;
  112.     Movie                            theMovie;
  113.     Track                            theTrack;
  114.     Media                            theMedia;
  115.     TimeScale                        movieScale;
  116.     TimeScale                        mediaScale;
  117.     TimeValue                        movieDuration;
  118.     TimeValue                        trackDuration;
  119.     TimeValue                        mediaDuration;
  120.     Fixed                            effectiveRate;
  121.     TimeBase                        timeBase;
  122.     short                            volume;
  123.     Fixed                            width;
  124.     Fixed                            height;
  125.     MatrixRecord                    trackMovieMatrix;
  126.     CGrafPtr                        moviePort;
  127.     GDHandle                        movieGD;
  128.     PixMapHandle                    trackMatte;
  129.     QTAtomContainer                    inputMap;
  130. };
  131. typedef struct GetMovieCompleteParams GetMovieCompleteParams;
  132.  
  133.  
  134. enum {
  135.     kMediaVideoParamBrightness    = 1,
  136.     kMediaVideoParamContrast,
  137.     kMediaVideoParamHue,
  138.     kMediaVideoParamSharpness,
  139.     kMediaVideoParamSaturation,
  140.     kMediaVideoParamBlackLevel,
  141.     kMediaVideoParamWhiteLevel
  142. };
  143.  
  144. extern pascal ComponentResult MediaInitialize(MediaHandler mh, GetMovieCompleteParams *gmc)
  145.  FIVEWORDINLINE(0x2F3C, 0x4, 0x501, 0x7000, 0xA82A);
  146. extern pascal ComponentResult MediaSetHandlerCapabilities(MediaHandler mh, long flags, long flagsMask)
  147.  FIVEWORDINLINE(0x2F3C, 0x8, 0x502, 0x7000, 0xA82A);
  148. extern pascal ComponentResult MediaIdle(MediaHandler mh, TimeValue atMediaTime, long flagsIn, long *flagsOut, const TimeRecord *movieTime)
  149.  FIVEWORDINLINE(0x2F3C, 0x10, 0x503, 0x7000, 0xA82A);
  150. extern pascal ComponentResult MediaGetMediaInfo(MediaHandler mh, Handle h)
  151.  FIVEWORDINLINE(0x2F3C, 0x4, 0x504, 0x7000, 0xA82A);
  152. extern pascal ComponentResult MediaPutMediaInfo(MediaHandler mh, Handle h)
  153.  FIVEWORDINLINE(0x2F3C, 0x4, 0x505, 0x7000, 0xA82A);
  154. extern pascal ComponentResult MediaSetActive(MediaHandler mh, Boolean enableMedia)
  155.  FIVEWORDINLINE(0x2F3C, 0x2, 0x506, 0x7000, 0xA82A);
  156. extern pascal ComponentResult MediaSetRate(MediaHandler mh, Fixed rate)
  157.  FIVEWORDINLINE(0x2F3C, 0x4, 0x507, 0x7000, 0xA82A);
  158. extern pascal ComponentResult MediaGGetStatus(MediaHandler mh, ComponentResult *statusErr)
  159.  FIVEWORDINLINE(0x2F3C, 0x4, 0x508, 0x7000, 0xA82A);
  160. extern pascal ComponentResult MediaTrackEdited(MediaHandler mh)
  161.  FIVEWORDINLINE(0x2F3C, 0, 0x509, 0x7000, 0xA82A);
  162. extern pascal ComponentResult MediaSetMediaTimeScale(MediaHandler mh, TimeScale newTimeScale)
  163.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50A, 0x7000, 0xA82A);
  164. extern pascal ComponentResult MediaSetMovieTimeScale(MediaHandler mh, TimeScale newTimeScale)
  165.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50B, 0x7000, 0xA82A);
  166. extern pascal ComponentResult MediaSetGWorld(MediaHandler mh, CGrafPtr aPort, GDHandle aGD)
  167.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50C, 0x7000, 0xA82A);
  168. extern pascal ComponentResult MediaSetDimensions(MediaHandler mh, Fixed width, Fixed height)
  169.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50D, 0x7000, 0xA82A);
  170. extern pascal ComponentResult MediaSetClip(MediaHandler mh, RgnHandle theClip)
  171.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50E, 0x7000, 0xA82A);
  172. extern pascal ComponentResult MediaSetMatrix(MediaHandler mh, MatrixRecord *trackMovieMatrix)
  173.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50F, 0x7000, 0xA82A);
  174. extern pascal ComponentResult MediaGetTrackOpaque(MediaHandler mh, Boolean *trackIsOpaque)
  175.  FIVEWORDINLINE(0x2F3C, 0x4, 0x510, 0x7000, 0xA82A);
  176. extern pascal ComponentResult MediaSetGraphicsMode(MediaHandler mh, long mode, const RGBColor *opColor)
  177.  FIVEWORDINLINE(0x2F3C, 0x8, 0x511, 0x7000, 0xA82A);
  178. extern pascal ComponentResult MediaGetGraphicsMode(MediaHandler mh, long *mode, RGBColor *opColor)
  179.  FIVEWORDINLINE(0x2F3C, 0x8, 0x512, 0x7000, 0xA82A);
  180. extern pascal ComponentResult MediaGSetVolume(MediaHandler mh, short volume)
  181.  FIVEWORDINLINE(0x2F3C, 0x2, 0x513, 0x7000, 0xA82A);
  182. extern pascal ComponentResult MediaSetSoundBalance(MediaHandler mh, short balance)
  183.  FIVEWORDINLINE(0x2F3C, 0x2, 0x514, 0x7000, 0xA82A);
  184. extern pascal ComponentResult MediaGetSoundBalance(MediaHandler mh, short *balance)
  185.  FIVEWORDINLINE(0x2F3C, 0x4, 0x515, 0x7000, 0xA82A);
  186. extern pascal ComponentResult MediaGetNextBoundsChange(MediaHandler mh, TimeValue *when)
  187.  FIVEWORDINLINE(0x2F3C, 0x4, 0x516, 0x7000, 0xA82A);
  188. extern pascal ComponentResult MediaGetSrcRgn(MediaHandler mh, RgnHandle rgn, TimeValue atMediaTime)
  189.  FIVEWORDINLINE(0x2F3C, 0x8, 0x517, 0x7000, 0xA82A);
  190. extern pascal ComponentResult MediaPreroll(MediaHandler mh, TimeValue time, Fixed rate)
  191.  FIVEWORDINLINE(0x2F3C, 0x8, 0x518, 0x7000, 0xA82A);
  192. extern pascal ComponentResult MediaSampleDescriptionChanged(MediaHandler mh, long index)
  193.  FIVEWORDINLINE(0x2F3C, 0x4, 0x519, 0x7000, 0xA82A);
  194. extern pascal ComponentResult MediaHasCharacteristic(MediaHandler mh, OSType characteristic, Boolean *hasIt)
  195.  FIVEWORDINLINE(0x2F3C, 0x8, 0x51A, 0x7000, 0xA82A);
  196. extern pascal ComponentResult MediaGetOffscreenBufferSize(MediaHandler mh, Rect *bounds, short depth, CTabHandle ctab)
  197.  FIVEWORDINLINE(0x2F3C, 0xA, 0x51B, 0x7000, 0xA82A);
  198. extern pascal ComponentResult MediaSetHints(MediaHandler mh, long hints)
  199.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51C, 0x7000, 0xA82A);
  200. extern pascal ComponentResult MediaGetName(MediaHandler mh, Str255 name, long requestedLanguage, long *actualLanguage)
  201.  FIVEWORDINLINE(0x2F3C, 0xC, 0x51D, 0x7000, 0xA82A);
  202. extern pascal ComponentResult MediaForceUpdate(MediaHandler mh, long forceUpdateFlags)
  203.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51E, 0x7000, 0xA82A);
  204. extern pascal ComponentResult MediaGetDrawingRgn(MediaHandler mh, RgnHandle *partialRgn)
  205.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51F, 0x7000, 0xA82A);
  206. extern pascal ComponentResult MediaGSetActiveSegment(MediaHandler mh, TimeValue activeStart, TimeValue activeDuration)
  207.  FIVEWORDINLINE(0x2F3C, 0x8, 0x520, 0x7000, 0xA82A);
  208. extern pascal ComponentResult MediaInvalidateRegion(MediaHandler mh, RgnHandle invalRgn)
  209.  FIVEWORDINLINE(0x2F3C, 0x4, 0x521, 0x7000, 0xA82A);
  210. extern pascal ComponentResult MediaGetNextStepTime(MediaHandler mh, short flags, TimeValue mediaTimeIn, TimeValue *mediaTimeOut, Fixed rate)
  211.  FIVEWORDINLINE(0x2F3C, 0xE, 0x522, 0x7000, 0xA82A);
  212. extern pascal ComponentResult MediaSetNonPrimarySourceData(MediaHandler mh, long inputIndex, long dataDescriptionSeed, Handle dataDescription, void *data, long dataSize, ICMCompletionProcRecordPtr asyncCompletionProc, ProcPtr transferProc, void *refCon)
  213.  FIVEWORDINLINE(0x2F3C, 0x20, 0x523, 0x7000, 0xA82A);
  214. extern pascal ComponentResult MediaChangedNonPrimarySource(MediaHandler mh, long inputIndex)
  215.  FIVEWORDINLINE(0x2F3C, 0x4, 0x524, 0x7000, 0xA82A);
  216. extern pascal ComponentResult MediaTrackReferencesChanged(MediaHandler mh)
  217.  FIVEWORDINLINE(0x2F3C, 0, 0x525, 0x7000, 0xA82A);
  218. extern pascal ComponentResult MediaGetSampleDataPointer(MediaHandler mh, long sampleNum, Ptr *dataPtr, long *dataSize, long *sampleDescIndex)
  219.  FIVEWORDINLINE(0x2F3C, 0x10, 0x526, 0x7000, 0xA82A);
  220. extern pascal ComponentResult MediaReleaseSampleDataPointer(MediaHandler mh, long sampleNum)
  221.  FIVEWORDINLINE(0x2F3C, 0x4, 0x527, 0x7000, 0xA82A);
  222. extern pascal ComponentResult MediaTrackPropertyAtomChanged(MediaHandler mh)
  223.  FIVEWORDINLINE(0x2F3C, 0, 0x528, 0x7000, 0xA82A);
  224. extern pascal ComponentResult MediaSetTrackInputMapReference(MediaHandler mh, QTAtomContainer inputMap)
  225.  FIVEWORDINLINE(0x2F3C, 0x4, 0x529, 0x7000, 0xA82A);
  226. extern pascal ComponentResult MediaSetGWorlds(MediaHandler mh, CGrafPtr directPort, GDHandle directGD, CGrafPtr offscreenPort, GDHandle offscreenGD)
  227.  FIVEWORDINLINE(0x2F3C, 0x10, 0x52A, 0x7000, 0xA82A);
  228. extern pascal ComponentResult MediaSetVideoParam(MediaHandler mh, long whichParam, unsigned short *value)
  229.  FIVEWORDINLINE(0x2F3C, 0x8, 0x52B, 0x7000, 0xA82A);
  230. extern pascal ComponentResult MediaGetVideoParam(MediaHandler mh, long whichParam, unsigned short *value)
  231.  FIVEWORDINLINE(0x2F3C, 0x8, 0x52C, 0x7000, 0xA82A);
  232. extern pascal ComponentResult MediaCompare(MediaHandler mh, Boolean *isOK, Media srcMedia, ComponentInstance srcMediaComponent)
  233.  FIVEWORDINLINE(0x2F3C, 0xC, 0x52D, 0x7000, 0xA82A);
  234.  
  235. enum {
  236.     kMediaInitializeSelect        = 0x501,
  237.     kMediaSetHandlerCapabilitiesSelect = 0x502,
  238.     kMediaIdleSelect            = 0x503,
  239.     kMediaGetMediaInfoSelect    = 0x504,
  240.     kMediaPutMediaInfoSelect    = 0x505,
  241.     kMediaSetActiveSelect        = 0x506,
  242.     kMediaSetRateSelect            = 0x507,
  243.     kMediaGGetStatusSelect        = 0x508,
  244.     kMediaTrackEditedSelect        = 0x509,
  245.     kMediaSetMediaTimeScaleSelect = 0x50A,
  246.     kMediaSetMovieTimeScaleSelect = 0x50B,
  247.     kMediaSetGWorldSelect        = 0x50C,
  248.     kMediaSetDimensionsSelect    = 0x50D,
  249.     kMediaSetClipSelect            = 0x50E,
  250.     kMediaSetMatrixSelect        = 0x50F,
  251.     kMediaGetTrackOpaqueSelect    = 0x510,
  252.     kMediaSetGraphicsModeSelect    = 0x511,
  253.     kMediaGetGraphicsModeSelect    = 0x512,
  254.     kMediaGSetVolumeSelect        = 0x513,
  255.     kMediaSetSoundBalanceSelect    = 0x514,
  256.     kMediaGetSoundBalanceSelect    = 0x515,
  257.     kMediaGetNextBoundsChangeSelect = 0x516,
  258.     kMediaGetSrcRgnSelect        = 0x517,
  259.     kMediaPrerollSelect            = 0x518,
  260.     kMediaSampleDescriptionChangedSelect = 0x519,
  261.     kMediaHasCharacteristicSelect = 0x51A,
  262.     kMediaGetOffscreenBufferSizeSelect = 0x51B,
  263.     kMediaSetHintsSelect        = 0x51C,
  264.     kMediaGetNameSelect            = 0x51D,
  265.     kMediaForceUpdateSelect        = 0x51E,
  266.     kMediaGetDrawingRgnSelect    = 0x51f,
  267.     kMediaGSetActiveSegmentSelect = 0x520,
  268.     kMediaInvalidateRegionSelect = 0x521,
  269.     kMediaGetNextStepTimeSelect    = 0x522,
  270.     kMediaSetNonPrimarySourceDataSelect = 0x523,
  271.     kMediaChangedNonPrimarySourceSelect = 0x524,
  272.     kMediaTrackReferencesChangedSelect = 0x525,
  273.     kMediaGetSampleDataPointerSelect = 0x526,
  274.     kMediaReleaseSampleDataPointerSelect = 0x527,
  275.     kMediaTrackPropertyAtomChangedSelect = 0x528,
  276.     kMediaSetTrackInputMapReferenceSelect = 0x529,
  277.     kMediaSetGWorldsSelect        = 0x52a,
  278.     kMediaSetVideoParamSelect    = 0x52b,
  279.     kMediaGetVideoParamSelect    = 0x52c,
  280.     kMediaCompareSelect            = 0x52d
  281. };
  282.  
  283.  
  284. #ifdef __CFM68K__
  285. #pragma import off
  286. #endif
  287.  
  288. #if GENERATINGPOWERPC
  289. #pragma options align=reset
  290. #endif
  291.  
  292. #ifdef __cplusplus
  293. }
  294. #endif
  295.  
  296. #endif /* __MEDIAHANDLERS__ */
  297.